
/** 图元数据类型*/
interface pelDataType {
    x: number;
    y: number;
    width: number;
    height: number;
    // 图元名称
    label: string,
    // 图元id
    key: string,
    // 图元类型
    type: string,
    // 图元分类
    category: string,
    // 父键
    parent: string,
    // 属性
    attrs: object,
    // 动画
    animations: object,
    // 事件
    events: object,
    // 子属性
    children?: any[],
}

/** 画布属性类型 */
interface canvasAttrType {
    /** 页面名称 */
    pageName: string,
    /** 页面键 */
    pageKey: string,
    /** 页面尺寸 */
    pageSize: string,
    /** 页面方向 */
    pageOrientation: string,
    /** 页面精度 */
    pageAccuracy: string,
    /** 页面单位 */
    pageUnit: string,

    // 🦢 画布
    /** 画布缩放 */
    canvasScale: number,
    /** 画布背景色 */
    canvasBackColor: string,
    /** 画布宽度 */
    canvasWidth: number,
    /** 画布高度 */
    canvasHeight: number,
    // 🦢 格栅
    /** 格栅模式选项:1-无格栅;2-点格栅;3-方格; */
    gridModel: number,
    /** 格栅样式选项:1-像素尺寸;2-均分画布;3-按宽高均分画布;*/
    gridStyle: number,
    /** 格栅间距 */
    gridSpace: number,
    /** 宽等分数 */
    gridBisectionWidthCont: number,
    /** 宽等分数 */
    gridBisectionHeightCont: number,
    /** 格栅点颜色 */
    gridDotColor: string,
    /** 小格颜色 */
    gridColorMini: string,
    /** 大格颜色 */
    gridColorMax: string,
    /** 格栅宽度 */
    gridWidth: number,
    /** 格栅高度 */
    gridHeight: number,

    // 🦢 光标
    /** 显示光标 */
    isShowCursor: false,
    /** 光标颜色 */
    cursorColor: string,
    /** 光标盒子尺寸 */
    cursorBoxSize: number,
    /** 光标长度 */
    cursorLang: number,
    /** 光标线宽度 */
    cursorLineWidth: number,
}

/** 页面类型 */
interface pageType {
    // 图元名称
    label: string,
    // 图元id
    key: string,
    // 图元类型
    canvasAttr: canvasAttrType,
    // 子属性
    pels: any[],
}

/** 图元类型 */
export class Myzt {
    // 画布属性
    canvasAttr: canvasAttrType
    // 页面
    page: pageType
}